package com.gadgets.bm09.process;

import com.gadgets.bm09.common.pojo.EcmyMain;
import com.gadgets.bm09.common.pojo.EmcyDataInfo;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

/**
 * 功能说明：
 *
 * @author Unclexiu
 * @version V202101.00.000
 * @data 2022-08-03
 * 修改记录：  修改日期          修改人员    修改说明
 * 2022-08-03  xiujunqing   创建文件
 */
@Component
public abstract class AbsEmcyExcelCellProcess implements IEmcyExcelCellProcess{

	protected final Logger logger = LoggerFactory.getLogger(this.getClass());

	/**
	 * 读取处理
	 *
	 * @param cell      列表格位
	 * @param columnNum 列序号
	 * @param main 			主信息
	 */
	@Override
	public EmcyDataInfo readProcess(Cell cell, int columnNum, EcmyMain main) {
		logger.info("当前正在读取第{}列", columnNum+1);
		return excute(cell, main);
	}

	/**
	 * 执行数据读取
	 * @param cell	列表格位
	 */
	public EmcyDataInfo excute(Cell cell, EcmyMain main){
		EmcyDataInfo dataInfo = new EmcyDataInfo();
		dataInfo.setMainId(main.getId());
		CellType formula = cell.getCellTypeEnum();
		if(formula==CellType.NUMERIC) {
			dataInfo.setDataValue(cell.getNumericCellValue());
		}
		buildGroupSpecialDataInfo(dataInfo);
		buildSpecialDataInfo(dataInfo);
		return dataInfo;
	}

	/**
	 * 组装分组特性化数据
	 * @param emcyDataInfo	经济数据
	 */
	public abstract void buildGroupSpecialDataInfo(EmcyDataInfo emcyDataInfo);

	/**
	 * 组装特性化数据
	 * @param emcyDataInfo	经济数据
	 */
	public abstract void buildSpecialDataInfo(EmcyDataInfo emcyDataInfo);

}
